Exploratory Data Analysis

Chargement des données

Relevés de 2015

Relevés de 2016

Différences entre les deux datasets

Aprés lecture des informations sur les variables

Suppression des colonnes ne correspondant pas car soit elles contiennent des informations de localisation précises sur les batiments et risquent de mener le modèle à apprendre 'par coeur' les consommations demandées, soit des informations non pertinentes.

Concaténation des deux dataFrames

Dédoublonnage

Je choisis de garder les relevés 2016 pour les bâtiments apparaissant sur les deux années et les bâtiments de 2015 n'ayant pas fait l'objet de relevés en 2016.

Pas de doublons

Variables cibles:

ENERGY USE :

TotalGHGEmissions :

Suppression des variables concernant les relevés dont on veut se séparer

Recherche des erreurs de remplissage

Remarques sur les valeurs relevant des erreurs de remplissage


Etude des valeurs manquantes

Tri sur les taux de remplissage des colonnes

Gestion des Nan de Outlier

Je choisis de garder cette variable pour pouvoir étudier les effets des outliers sur les modèles,

Remplacement des valeurs manquantes par 'normal'

Gestion des Nan de ListOfAllPropertyUseTypes

Suppression des 16 enregistrements pour lesquels on ne connaît pas la listedes usages

Gestion des Nan de LargestPropertyUseType

Pour ces enregistrements on ne connaît pas non plus la surface dédiée à l'usage donc je choisis de supprimer

Gestion des Nan de SecondLargest et ThirdLargest

regardons la liste de tous les usages du batiment, si les second et troisièmes usages y figurent on pourra compléter les valeurs manquantes

suppression de la variable initiale

Use2 correspond à SecondLargestPropertyUseType

Use3 correspond à ThirdLargestPropertyUseType

On peut donc imputer None et 0 aux valeurs manquantes

Suppression des colonnes Use1, Use2 et Use3

Distributions

consommation du batiment

Changement de l'ordre des colonnes pour avoir la variable SiteEnergyUse(kBtu) et TotalGHGEmissions, comme premières colonnes de la table

Etude des variables qualitatives

vars=data.select_dtypes('object').columns.to_list() Energy_eta2=pd.DataFrame( columns=['Source','p-unc','np2']) Ges_eta2=pd.DataFrame( columns=['Source','p-unc','np2']) for col in vars: etaE=pg.welch_anova(data=data,dv=cible1,between=col) Energy_eta2=pd.concat([Energy_eta2,etaE[['Source','p-unc','np2']]],axis=0) etaG=pg.welch_anova(data=data,dv=cible2,between=col) Ges_eta2=pd.concat([Ges_eta2,etaG[['Source','p-unc','np2']]],axis=0) Energy_eta2.columns=['Energy /Variable','p value','np2'] Ges_eta2.columns=['GES /Variable','p value','np2'] display(Energy_eta2,Ges_eta2)

Formatage des noms des catégories

Formatage des noms de quartier

Suppression de cette variable de la liste car explication de la variance des cibles trés faible

Suppression de cette variable de la liste car explication de la variance des cibles trés faible

Etude des varibles quantitatives

Si l'on considère que les batiments les plus recent ou ceux aqui on été renové recement sont les mieux isolés je soustrait 2016 à cette variable

Si l'on considère que la quasi totalité des propriétés ont un seul batiment, je vais diviser toutes les valeurs des surfaces de ces propriétés par le nombre de batiments pour me ramener au cas où une propriété est constituée d'un batiment.

Pour prévoir en situation réelle les consommations d'une propriété ayant n batiments il suffira de multiplier la prédiction par le nombre de bat pour pouvoir estimer ses conso

cette variable n'est plus utile ->drop

Cette distribution est plus normale je l'intègre aux data

Cette distribution est plus normale je l'intègre aux data

Cette distribution est plus normale je l'intègre aux data

Cette distribution est plus normale je l'intègre aux data

Cette distribution est plus normale je l'intègre aux data

Variable : ThirdLargestPropertyUseTypeGFA

Cette distribution est plus normale je l'intègre aux data

Sauvegarde de Base

data.to_json('Buildings_2015_16_nettoyé.json')

Feature engeneering

Création d'une variable comptabilisant le nombre d'usages d'un batiment

Scale de energyuse

Scale TotalGHGEmissions

Suppression des variables non scalées

Sélection des variables

Choix des variables quantitatives

Calcul des corrélations des variables quantitatives avec la cible

Choix des variables catégorielles

Pour Siteenergyuse

Pour GES

La variable BuildingType n'est pas retenue comme pertinenete dans l'explication de la variance de SiteEnergyUse je choisisde la conserver quand même.

Enregistrement des données pour la modélisation